core: Add some more sanity checks to pull when parsing metadata
authorColin Walters <walters@verbum.org>
Thu, 22 Dec 2011 22:00:58 +0000 (17:00 -0500)
committerColin Walters <walters@verbum.org>
Thu, 22 Dec 2011 22:00:58 +0000 (17:00 -0500)
src/ostree/ostree-pull.c

index 6431cb62410641732a260de344154d7fc24656ff..d1553c834bb6e5af9f1b1e5e0e0f8721ec73c8f3 100644 (file)
@@ -242,6 +242,11 @@ store_tree_recurse (OstreeRepo   *repo,
 
           g_variant_get_child (files_variant, i, "(&s&s)", &filename, &checksum);
 
+          if (!ot_util_filename_validate (filename, error))
+            goto out;
+          if (!ostree_validate_checksum_string (checksum, error))
+            goto out;
+
           g_clear_object (&meta_file);
 
           if (!fetch_object (repo, soup, base_uri, checksum,
@@ -290,6 +295,13 @@ store_tree_recurse (OstreeRepo   *repo,
           g_variant_get_child (dirs_variant, i, "(&s&s&s)",
                                &dirname, &tree_checksum, &meta_checksum);
 
+          if (!ot_util_filename_validate (dirname, error))
+            goto out;
+          if (!ostree_validate_checksum_string (tree_checksum, error))
+            goto out;
+          if (!ostree_validate_checksum_string (meta_checksum, error))
+            goto out;
+
           if (!store_object (repo, soup, base_uri, meta_checksum, OSTREE_OBJECT_TYPE_DIR_META, &did_exist, error))
             goto out;